package utils
{
	import flash.display.Sprite;
	public class DrawCircle
	{
		public function DrawCircle()
		{
		}
		
		/**
		 * 画扇形
		 * @param mc		target
		 * @param x			位置X
		 * @param y			位置Y
		 * @param r			半径
		 * @param angle		角度
		 * @param startFrom 从多少度开始
		 * @param color		填充颜色
		 * 
		 */		
		public static function DrawSector(mc:Sprite,x:Number=200,y:Number=200,r:Number=100,angle:Number=27,startFrom:Number=270,color:Number=0xff0000,alpha:Number=1,lineColor:Number=0xff0000,lineAlpha:Number=1):void  
		{  
			mc.graphics.beginFill(color,alpha);  
			mc.graphics.lineStyle(0,lineColor,lineAlpha);  
			mc.graphics.moveTo(x,y);  
			angle=(Math.abs(angle)>360)?360:angle;  
			var n:Number=Math.ceil(Math.abs(angle)/45);  
			var angleA:Number=angle/n;  
			
			angleA=angleA*Math.PI/180;  
			
			startFrom=startFrom*Math.PI/180;  
			mc.graphics.lineTo(x+r*Math.cos(startFrom),y+r*Math.sin(startFrom));  
			for (var i:uint=1; i<=n; i++)  
			{  
				startFrom+=angleA;  
				var angleMid:Number=startFrom-angleA/2;  
				var bx:Number=x+r/Math.cos(angleA/2)*Math.cos(angleMid);  
				var by:Number=y+r/Math.cos(angleA/2)*Math.sin(angleMid);  
				var cx:Number=x+r*Math.cos(startFrom);  
				var cy:Number=y+r*Math.sin(startFrom);  
				mc.graphics.curveTo(bx,by,cx,cy);  
			}  
			if (angle!=360)  
			{  
				mc.graphics.lineTo(x,y);  
			}  
			mc.graphics.endFill();  
		}  
	}
}